/*
 * 文件名：RoleService.java
 * 版权：Copyright by will_awoke
 * 描述：
 * 修改人：will_awoke
 * 修改时间：2014-8-19
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */

package com.qbgs.rbac.service;


import java.util.List;

import com.qbgs.base.BaseResult;
import com.qbgs.base.TreeEntity;


/**
 * 
 * @author will_awoke
 * @version 2014-8-19
 * @see RoleService
 * @since
 */
public interface RoleService
{

    /**
     * 分页查询
     * @param currentPage
     * @param numPerPage
     * @param roleName
     * @return 
     * @see
     */
    BaseResult queryRolePage(int currentPage, int numPerPage, String roleName);

    /**
     * 拼装角色ztree
     * @return 
     * @see
     */
    List<TreeEntity> ztreeAllRoles();

    /**
     * 修改操作时，拼装角色ztree
     * @param userId
     * @return 
     * @see
     */
    List<TreeEntity> ztreeEditRoles(String userId);

    /**
     * 新增角色，并为其分配菜单
     * @param roleName
     * @param remarks
     * @param menuId
     * @return 
     * @see
     */
    boolean addRoleOfMenu(String roleName, String remarks, String menuId);
    
    
    /**
     * 根据角色id查询角色所绑定的菜单id（多个菜单id采用英文逗号连接）
     * @param roleId
     * @return 
     * @see
     */
    String queryMenuIdsOfRole(String roleId);

    /**
     * 根据角色id查询角色所绑定的菜单名称（多个菜单名称采用英文逗号连接）
     * @param roleId
     * @return 
     * @see
     */
    String queryMenuNamesOfRole(String roleId);

    /**
     * 删除角色，同时删除角色与菜单的绑定关系
     * @param roleId
     * @return 
     * @see
     */
    boolean deleteRole(String roleId);
    
    /**
     * 查询角色是否存在关联的用户
     * @param roleId
     * @return true=存在关联用户 false=不存在
     * @see
     */
    boolean isRoleRefUser(String roleId);
    
    /**
     * 修改角色，并为其分配菜单
     * @param roleId
     * @param roleName
     * @param remarks
     * @param menuId
     * @return 
     * @see
     */
    boolean updateRoleOfMenu(String roleId, String roleName, String remarks, String menuId);

}
